1. Field of the Invention
Embodiments of the present invention generally relate to video format conversion. More particularly, embodiments of the present invention relate to performing video format conversion using a 3D graphics pipeline of a graphical processing unit (GPU).
2. Related Art
There are several types of video formats. In particular, YUV video formats are widely used, where Y represents brightness (or luma) while U and V represent color (or chroma). More particular, U (or Cb) represents a color difference value formed by subtracting brightness (Y) from the color blue while V (or Cr) represents a color difference value formed by subtracting brightness (Y) from the color red.
Examples of YUV video formats include the 4:2:0 video formats and the 4:2:2 video formats. The primary difference between these video formats is the number of chroma samples for each luma sample. The 4:2:0 video formats have one U (or Cb) chroma sample and one V (Cr) chroma sample for every four Y (or luma) samples. The 4:2:2 video formats have one U (or Cb) chroma sample and one V (Cr) chroma sample for every two Y (or luma) samples. As a result, a pixel in the 4:2:0 video format is defined differently than a pixel in the 4:2:2 video format because of the difference in chroma samples for every luma sample in these two video format.
When converting from a 4:2:0 video format to a 4:2:2 video format, typically an upsampling technique is utilized. An example of an upsampling technique is replication. Replication is a process that can be used to increase the size of an image by repeating or duplicating pixels (to increase the horizontal size) and/or lines (to increase the vertical size) or to increase the display rate of a video stream by repeating or duplicating frames. For example, a 360×240 pixel image can be displayed at 720×480 size by duplicating each pixel on each line and then duplicating each line. Similarly, a 24 frames per second video signal can be displayed at 72 frames per second by repeating each frame three times.
For converting a 4:2:0 video format to a 4:2:2 video format using replication, the chroma samples of the 4:2:0 video format are duplicated or repeated such that one U (or Cb) chroma sample and one V (Cr) chroma sample exist for every two Y (or luma) samples rather than one U (or Cb) chroma sample and one V (Cr) chroma sample for every four Y (or luma) samples.
However, when converting from a 4:2:2 video format to a 4:2:0 video format, typically a downsampling technique is utilized. An example of a downsampling technique is decimation. Decimation is a process used to reduce sampled data, usually by an integer factor. Typically, existing samples (pixels, in the case of spatial decimation, or pictures, in the case of temporal decimation) are discarded. The resulting sampled data is reduced in size.
For converting a 4:2:2 video format to a 4:2:0 video format using decimation, chroma samples of the 4:2:2 video format are discarded such that one U (or Cb) chroma sample and one V (Cr) chroma sample exist for every four Y (or luma) samples rather than one U (or Cb) chroma sample and one V (Cr) chroma sample for every two Y (or luma) samples.
The development of the graphical processing unit (GPU) has enabled the offloading from the central processing unit (CPU) onto the GPU computationally intensive calculations associated with graphics. Moreover, the GPU is being utilized to perform the conversion between 4:2:2 video format and 4:2:0 video format. Typically, the GPU uses a dedicated conversion unit that is specifically designed into the GPU to perform specific video format conversions. Generally, the video format conversion is performed by applying replication for upsampling and decimation for downsampling. Replication and decimation are simpler techniques to execute than other filtering techniques available. Thus, by using replication and decimation, the dedicated conversion unit can perform the video format conversion much faster compared to using other filtering techniques. Moreover, when other components of the GPU are utilized to perform the video format conversion using replication, decimation, or another type of filtering technique, the results are usually unsatisfactory because the bandwidth (or video processing capability) of these components is smaller than the required bandwidth for practical video format conversion applications.
The dedicated conversion unit reduces the amount of chip space on the GPU for other components and can usually perform only specific video format conversions. Moreover, the dedicated conversion unit is typically designed to receive the video data from a video memory, perform the video format conversion, and send the converted video data directly to the display. The dedicated conversion unit is usually not designed to return the converted video data to the video memory for further processing. Additionally, decimation and replication usually lead to improper color fidelity, distortion, and other artifacts that are visually perceptible, reducing video quality.